class ListNode:
    def __init__(self,val=0,next=None):
        self.val=val
        self.next=next

head=ListNode(1)
head.next=ListNode(2)
head.next.next=ListNode(3)
head.next.next.next=ListNode(4)

def swapPairs(head):
    #这里为了保证最左边的节点和中间节点的处理方式一致
    #我额外添加一个头节点
    headNode=ListNode()
    headNode.next=head
    #创建工作指针
    p0=headNode
    p1=head
    while p0 and p1 and p1.next:
        #当p0存在,p1存在,且p1的下一个节点存在时，即可进行操作
        p0.next=p1.next
        p1.next=p1.next.next
        p0.next.next=p1
        p0=p0.next.next
        p1=p1.next

    p0=headNode
    while p0:
        print(p0.val)
        p0=p0.next
swapPairs(head)